/**
 * Copyright &copy; 2012-2017 <a href="https://vivo.com">vivo</a> All rights reserved.
 */
package com.vivo.retail.entity;

import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import javax.validation.constraints.NotNull;
import com.thinkgem.jeesite.common.utils.excel.annotation.ExcelField;

import com.thinkgem.jeesite.common.persistence.DataEntity;

/**
 * 新的零售单Entity
 * @author jyangye
 * @version 2018-04-10
 */
public class ViDeaRetailorder extends DataEntity<ViDeaRetailorder> {
	
	private static final long serialVersionUID = 1L;
	private String retailorderid;		// 零售单ID
	private String warehouseid;		// 仓库ID
	private String userid;		// 用户ID
	private String retaildealerid;		// 零售经销商ID
	private String retaildealerrelationid;		// 零售经销商关系ID
	private String memberid;		// 会员ID
	private String accountid;		// 支票账户ID
	private String retailtype;		// 零售类型(零售销售、零售退货)
	private String ordercode;		// 订单编号
	private Date orderdate;		// 单据日期
	private String handleremployeeid;		// 经手人员工ID
	private String checkeremployeeid;		// 验收人员工ID
	private String checkstate;		// 验收状态
	private Date checkdate;		// 验收日期
	private String thisverifystate;		// 本级审核状态(无须审核,未审核,正在审核,审核未通过,审核已通过)
	private Date checkpasseddate;		// 审核通过日期
	private String warescount;		// 商品总数
	private Date makedate;		// 制单日期
	private String orderstate;		// 单据状态(草稿、正常)
	private String remark;		// 备注
	private String updateflag;		// updateflag
	private String exchangemembercode;		// 兑换积分卡号
	private String exchangeintegral;		// 兑换积分
	private String recommendmembercode;		// 推荐卡号
	private String cashmoney;		// 实收现金金额
	private String cardmoney;		// 刷卡金额
	private String largessintegral;		// 赠送积分
	private Date integralperioddate;		// 积分有效期
	private String actualmoney;		// 实际金额
	private String preferentialmoney;		// 优惠金额
	private String contractmachinekind;		// 合约机类型
	private String stagingaccountid;		// 分期账户ID
	private String stagingmoney;		// 分期金额
	private String reserveorderid;		// 预订单ID
	private String reservemoney;		// 本次抵扣订金
	private String factorystoretranscode;		// 工厂专卖店单据编号
	private String cashpreferentialmoney;		// 现金优惠金额
	private String oldlargessintegral;		// 老客户赠送积分
	private String upstoreinhouseresult;		// upstoreinhouseresult
	private String upstoreinhouseresultmessage;		// upstoreinhouseresultmessage
	private String sendintegralruleid;		// 产品赠送积分规则ID
	private String useintegralruleid;		// 配件使用积分规则ID
	private String stagingaccountid2;		// 分期账户ID2
	private String stagingmoney2;		// 分期金额2
	private String retailvoucherid;		// retailvoucherid
	private Date checkpassedtoday;		// checkpassedtoday
	private Date makedatetoday;		// makedatetoday
	private Date beginMakedate;		// 开始 制单日期
	private Date endMakedate;		// 结束 制单日期
	
	public ViDeaRetailorder() {
		super();
	}

	public ViDeaRetailorder(String id){
		super(id);
	}

	@Length(min=1, max=32, message="零售单ID长度必须介于 1 和 32 之间")
	@ExcelField(title="零售单ID", align=2, sort=10)
	public String getRetailorderid() {
		return retailorderid;
	}

	public void setRetailorderid(String retailorderid) {
		this.retailorderid = retailorderid;
	}
	
	@Length(min=0, max=11, message="仓库ID长度必须介于 0 和 11 之间")
	@ExcelField(title="仓库ID", align=2, sort=20)
	public String getWarehouseid() {
		return warehouseid;
	}

	public void setWarehouseid(String warehouseid) {
		this.warehouseid = warehouseid;
	}
	
	@Length(min=1, max=32, message="用户ID长度必须介于 1 和 32 之间")
	@ExcelField(title="用户ID", align=2, sort=30)
	public String getUserid() {
		return userid;
	}

	public void setUserid(String userid) {
		this.userid = userid;
	}
	
	@Length(min=0, max=11, message="零售经销商ID长度必须介于 0 和 11 之间")
	@ExcelField(title="零售经销商ID", align=2, sort=40)
	public String getRetaildealerid() {
		return retaildealerid;
	}

	public void setRetaildealerid(String retaildealerid) {
		this.retaildealerid = retaildealerid;
	}
	
	@Length(min=0, max=11, message="零售经销商关系ID长度必须介于 0 和 11 之间")
	@ExcelField(title="零售经销商关系ID", align=2, sort=50)
	public String getRetaildealerrelationid() {
		return retaildealerrelationid;
	}

	public void setRetaildealerrelationid(String retaildealerrelationid) {
		this.retaildealerrelationid = retaildealerrelationid;
	}
	
	@Length(min=0, max=32, message="会员ID长度必须介于 0 和 32 之间")
	@ExcelField(title="会员ID", align=2, sort=60)
	public String getMemberid() {
		return memberid;
	}

	public void setMemberid(String memberid) {
		this.memberid = memberid;
	}
	
	@Length(min=0, max=32, message="支票账户ID长度必须介于 0 和 32 之间")
	@ExcelField(title="支票账户ID", align=2, sort=70)
	public String getAccountid() {
		return accountid;
	}

	public void setAccountid(String accountid) {
		this.accountid = accountid;
	}
	
	@Length(min=1, max=10, message="零售类型(零售销售、零售退货)长度必须介于 1 和 10 之间")
	@ExcelField(title="零售类型(零售销售、零售退货)", align=2, sort=80)
	public String getRetailtype() {
		return retailtype;
	}

	public void setRetailtype(String retailtype) {
		this.retailtype = retailtype;
	}
	
	@Length(min=1, max=30, message="订单编号长度必须介于 1 和 30 之间")
	@ExcelField(title="订单编号", align=2, sort=90)
	public String getOrdercode() {
		return ordercode;
	}

	public void setOrdercode(String ordercode) {
		this.ordercode = ordercode;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="单据日期不能为空")
	@ExcelField(title="单据日期", align=2, sort=100)
	public Date getOrderdate() {
		return orderdate;
	}

	public void setOrderdate(Date orderdate) {
		this.orderdate = orderdate;
	}
	
	@Length(min=0, max=32, message="经手人员工ID长度必须介于 0 和 32 之间")
	@ExcelField(title="经手人员工ID", align=2, sort=110)
	public String getHandleremployeeid() {
		return handleremployeeid;
	}

	public void setHandleremployeeid(String handleremployeeid) {
		this.handleremployeeid = handleremployeeid;
	}
	
	@Length(min=0, max=32, message="验收人员工ID长度必须介于 0 和 32 之间")
	@ExcelField(title="验收人员工ID", align=2, sort=120)
	public String getCheckeremployeeid() {
		return checkeremployeeid;
	}

	public void setCheckeremployeeid(String checkeremployeeid) {
		this.checkeremployeeid = checkeremployeeid;
	}
	
	@Length(min=0, max=1, message="验收状态长度必须介于 0 和 1 之间")
	@ExcelField(title="验收状态", align=2, sort=130)
	public String getCheckstate() {
		return checkstate;
	}

	public void setCheckstate(String checkstate) {
		this.checkstate = checkstate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="验收日期", align=2, sort=140)
	public Date getCheckdate() {
		return checkdate;
	}

	public void setCheckdate(Date checkdate) {
		this.checkdate = checkdate;
	}
	
	@Length(min=1, max=1, message="本级审核状态(无须审核,未审核,正在审核,审核未通过,审核已通过)长度必须介于 1 和 1 之间")
	@ExcelField(title="本级审核状态(无须审核,未审核,正在审核,审核未通过,审核已通过)", align=2, sort=150)
	public String getThisverifystate() {
		return thisverifystate;
	}

	public void setThisverifystate(String thisverifystate) {
		this.thisverifystate = thisverifystate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="审核通过日期", align=2, sort=160)
	public Date getCheckpasseddate() {
		return checkpasseddate;
	}

	public void setCheckpasseddate(Date checkpasseddate) {
		this.checkpasseddate = checkpasseddate;
	}
	
	@Length(min=0, max=11, message="商品总数长度必须介于 0 和 11 之间")
	@ExcelField(title="商品总数", align=2, sort=170)
	public String getWarescount() {
		return warescount;
	}

	public void setWarescount(String warescount) {
		this.warescount = warescount;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@NotNull(message="制单日期不能为空")
	@ExcelField(title="制单日期", align=2, sort=180)
	public Date getMakedate() {
		return makedate;
	}

	public void setMakedate(Date makedate) {
		this.makedate = makedate;
	}
	
	@Length(min=1, max=1, message="单据状态(草稿、正常)长度必须介于 1 和 1 之间")
	@ExcelField(title="单据状态(草稿、正常)", align=2, sort=190)
	public String getOrderstate() {
		return orderstate;
	}

	public void setOrderstate(String orderstate) {
		this.orderstate = orderstate;
	}
	
	@ExcelField(title="备注", align=2, sort=200)
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}
	
	@ExcelField(title="updateflag", align=2, sort=210)
	public String getUpdateflag() {
		return updateflag;
	}

	public void setUpdateflag(String updateflag) {
		this.updateflag = updateflag;
	}
	
	@Length(min=0, max=100, message="兑换积分卡号长度必须介于 0 和 100 之间")
	@ExcelField(title="兑换积分卡号", align=2, sort=220)
	public String getExchangemembercode() {
		return exchangemembercode;
	}

	public void setExchangemembercode(String exchangemembercode) {
		this.exchangemembercode = exchangemembercode;
	}
	
	@ExcelField(title="兑换积分", align=2, sort=230)
	public String getExchangeintegral() {
		return exchangeintegral;
	}

	public void setExchangeintegral(String exchangeintegral) {
		this.exchangeintegral = exchangeintegral;
	}
	
	@Length(min=0, max=100, message="推荐卡号长度必须介于 0 和 100 之间")
	@ExcelField(title="推荐卡号", align=2, sort=240)
	public String getRecommendmembercode() {
		return recommendmembercode;
	}

	public void setRecommendmembercode(String recommendmembercode) {
		this.recommendmembercode = recommendmembercode;
	}
	
	@ExcelField(title="实收现金金额", align=2, sort=250)
	public String getCashmoney() {
		return cashmoney;
	}

	public void setCashmoney(String cashmoney) {
		this.cashmoney = cashmoney;
	}
	
	@ExcelField(title="刷卡金额", align=2, sort=260)
	public String getCardmoney() {
		return cardmoney;
	}

	public void setCardmoney(String cardmoney) {
		this.cardmoney = cardmoney;
	}
	
	@ExcelField(title="赠送积分", align=2, sort=270)
	public String getLargessintegral() {
		return largessintegral;
	}

	public void setLargessintegral(String largessintegral) {
		this.largessintegral = largessintegral;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="积分有效期", align=2, sort=280)
	public Date getIntegralperioddate() {
		return integralperioddate;
	}

	public void setIntegralperioddate(Date integralperioddate) {
		this.integralperioddate = integralperioddate;
	}
	
	@ExcelField(title="实际金额", align=2, sort=290)
	public String getActualmoney() {
		return actualmoney;
	}

	public void setActualmoney(String actualmoney) {
		this.actualmoney = actualmoney;
	}
	
	@ExcelField(title="优惠金额", align=2, sort=300)
	public String getPreferentialmoney() {
		return preferentialmoney;
	}

	public void setPreferentialmoney(String preferentialmoney) {
		this.preferentialmoney = preferentialmoney;
	}
	
	@Length(min=0, max=10, message="合约机类型长度必须介于 0 和 10 之间")
	@ExcelField(title="合约机类型", align=2, sort=310)
	public String getContractmachinekind() {
		return contractmachinekind;
	}

	public void setContractmachinekind(String contractmachinekind) {
		this.contractmachinekind = contractmachinekind;
	}
	
	@Length(min=0, max=32, message="分期账户ID长度必须介于 0 和 32 之间")
	@ExcelField(title="分期账户ID", align=2, sort=320)
	public String getStagingaccountid() {
		return stagingaccountid;
	}

	public void setStagingaccountid(String stagingaccountid) {
		this.stagingaccountid = stagingaccountid;
	}
	
	@ExcelField(title="分期金额", align=2, sort=330)
	public String getStagingmoney() {
		return stagingmoney;
	}

	public void setStagingmoney(String stagingmoney) {
		this.stagingmoney = stagingmoney;
	}
	
	@Length(min=0, max=32, message="预订单ID长度必须介于 0 和 32 之间")
	@ExcelField(title="预订单ID", align=2, sort=340)
	public String getReserveorderid() {
		return reserveorderid;
	}

	public void setReserveorderid(String reserveorderid) {
		this.reserveorderid = reserveorderid;
	}
	
	@ExcelField(title="本次抵扣订金", align=2, sort=350)
	public String getReservemoney() {
		return reservemoney;
	}

	public void setReservemoney(String reservemoney) {
		this.reservemoney = reservemoney;
	}
	
	@Length(min=0, max=100, message="工厂专卖店单据编号长度必须介于 0 和 100 之间")
	@ExcelField(title="工厂专卖店单据编号", align=2, sort=360)
	public String getFactorystoretranscode() {
		return factorystoretranscode;
	}

	public void setFactorystoretranscode(String factorystoretranscode) {
		this.factorystoretranscode = factorystoretranscode;
	}
	
	@ExcelField(title="现金优惠金额", align=2, sort=370)
	public String getCashpreferentialmoney() {
		return cashpreferentialmoney;
	}

	public void setCashpreferentialmoney(String cashpreferentialmoney) {
		this.cashpreferentialmoney = cashpreferentialmoney;
	}
	
	@ExcelField(title="老客户赠送积分", align=2, sort=380)
	public String getOldlargessintegral() {
		return oldlargessintegral;
	}

	public void setOldlargessintegral(String oldlargessintegral) {
		this.oldlargessintegral = oldlargessintegral;
	}
	
	@Length(min=0, max=1, message="upstoreinhouseresult长度必须介于 0 和 1 之间")
	@ExcelField(title="upstoreinhouseresult", align=2, sort=390)
	public String getUpstoreinhouseresult() {
		return upstoreinhouseresult;
	}

	public void setUpstoreinhouseresult(String upstoreinhouseresult) {
		this.upstoreinhouseresult = upstoreinhouseresult;
	}
	
	@ExcelField(title="upstoreinhouseresultmessage", align=2, sort=400)
	public String getUpstoreinhouseresultmessage() {
		return upstoreinhouseresultmessage;
	}

	public void setUpstoreinhouseresultmessage(String upstoreinhouseresultmessage) {
		this.upstoreinhouseresultmessage = upstoreinhouseresultmessage;
	}
	
	@Length(min=0, max=32, message="产品赠送积分规则ID长度必须介于 0 和 32 之间")
	@ExcelField(title="产品赠送积分规则ID", align=2, sort=410)
	public String getSendintegralruleid() {
		return sendintegralruleid;
	}

	public void setSendintegralruleid(String sendintegralruleid) {
		this.sendintegralruleid = sendintegralruleid;
	}
	
	@Length(min=0, max=32, message="配件使用积分规则ID长度必须介于 0 和 32 之间")
	@ExcelField(title="配件使用积分规则ID", align=2, sort=420)
	public String getUseintegralruleid() {
		return useintegralruleid;
	}

	public void setUseintegralruleid(String useintegralruleid) {
		this.useintegralruleid = useintegralruleid;
	}
	
	@Length(min=0, max=32, message="分期账户ID2长度必须介于 0 和 32 之间")
	@ExcelField(title="分期账户ID2", align=2, sort=430)
	public String getStagingaccountid2() {
		return stagingaccountid2;
	}

	public void setStagingaccountid2(String stagingaccountid2) {
		this.stagingaccountid2 = stagingaccountid2;
	}
	
	@ExcelField(title="分期金额2", align=2, sort=440)
	public String getStagingmoney2() {
		return stagingmoney2;
	}

	public void setStagingmoney2(String stagingmoney2) {
		this.stagingmoney2 = stagingmoney2;
	}
	
	@Length(min=0, max=32, message="retailvoucherid长度必须介于 0 和 32 之间")
	@ExcelField(title="retailvoucherid", align=2, sort=450)
	public String getRetailvoucherid() {
		return retailvoucherid;
	}

	public void setRetailvoucherid(String retailvoucherid) {
		this.retailvoucherid = retailvoucherid;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="checkpassedtoday", align=2, sort=460)
	public Date getCheckpassedtoday() {
		return checkpassedtoday;
	}

	public void setCheckpassedtoday(Date checkpassedtoday) {
		this.checkpassedtoday = checkpassedtoday;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="makedatetoday", align=2, sort=470)
	public Date getMakedatetoday() {
		return makedatetoday;
	}

	public void setMakedatetoday(Date makedatetoday) {
		this.makedatetoday = makedatetoday;
	}
	
	public Date getBeginMakedate() {
		return beginMakedate;
	}

	public void setBeginMakedate(Date beginMakedate) {
		this.beginMakedate = beginMakedate;
	}
	
	public Date getEndMakedate() {
		return endMakedate;
	}

	public void setEndMakedate(Date endMakedate) {
		this.endMakedate = endMakedate;
	}
		
}